home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / you-075a.lha / you-075a / class.h < prev    next >
C/C++ Source or Header  |  1992-06-18  |  3KB  |  88 lines

  1. /* ******************************************************************** */
  2. /*  class.h          Copyright (C) Codemist and University of Bath 1989 */
  3. /*                                                                      */
  4. /* Class fun prototypes                                                 */
  5. /* ******************************************************************** */
  6.  
  7. #define CLASS_KEY(class) class /* The bit of a class used for key tables */
  8.  
  9. /* Class object accessors... */
  10.  
  11. extern LispObject Fn_classp(LispObject*);
  12. extern LispObject Fn_class_of(LispObject*);
  13. extern LispObject Fn_subclassp(LispObject*);
  14. extern LispObject Fn_class_name(LispObject*);
  15. extern LispObject Fn_class_precedence_list(LispObject*);
  16. extern LispObject Fn_class_direct_superclasses(LispObject*);
  17. extern LispObject Fn_local_slots(LispObject*);
  18. extern LispObject Fn_class_slot_descriptions(LispObject*);
  19. extern LispObject Fn_class_direct_superclasses(LispObject*);
  20. extern LispObject Fn_class_direct_subclasses(LispObject*);
  21. extern LispObject Fn_class_slot_descriptions(LispObject*);
  22. extern LispObject Fn_class_direct_slot_descriptions(LispObject*);
  23.  
  24. /* Slot access protocol... */
  25.  
  26. extern LispObject make_instance(LispObject*,Env,LispObject,LispObject);
  27.  
  28. /* Slot read chain */
  29.  
  30. extern LispObject Fn_slot_value(LispObject*);
  31. extern LispObject Gf_slot_description_reader;
  32.  
  33. /* Slot write chain */
  34.  
  35. extern LispObject Fn_slot_value_setter(LispObject*);
  36.  
  37. extern LispObject Fn_slot_description_readers(LispObject*);
  38. extern LispObject Fn_slot_description_writers(LispObject*);
  39.  
  40. extern LispObject search_initargs(LispObject,LispObject);
  41.  
  42. extern LispObject defstruct(LispObject*,
  43.                 LispObject,Env,LispObject,
  44.                 LispObject,LispObject,LispObject);
  45.  
  46. extern LispObject Fn_slot_exists_p(LispObject*);
  47.  
  48. extern LispObject Fn_nconc(LispObject*);
  49.  
  50. extern LispObject Fn_make_constructor(LispObject*);
  51. extern LispObject Fn_make_reader(LispObject*);
  52. extern LispObject Fn_make_writer(LispObject*);
  53.  
  54. /* GF prototypes */
  55. extern LispObject Gf_allocate_instance;
  56. extern LispObject Md_allocate_instance(LispObject*);
  57.  
  58. /* Utilities */
  59. extern LispObject search_keylist(LispObject*,LispObject,LispObject);
  60.  
  61. /* Inheritance */
  62.  
  63. extern LispObject Fn_add_superclasses(LispObject*);
  64. extern LispObject Fn_add_subclass(LispObject*);
  65. extern LispObject Fn_metaclass_compatibility(LispObject*);
  66. extern LispObject Fn_collect_slots(LispObject*);
  67. extern LispObject Gf_make_slot_description(LispObject*);
  68. extern LispObject Gf_make_inherited_slot_description(LispObject*);
  69. extern LispObject Gf_make_instance(LispObject*);
  70.  
  71. extern LispObject Fn_inherit_slot_details(LispObject*);
  72.  
  73. extern LispObject Fn_shared_slot_description_reader(LispObject*);
  74. extern LispObject Fn_shared_slot_description_writer(LispObject*);
  75. extern LispObject eval_alternate(LispObject,Env,LispObject);
  76.  
  77. /* Symbols */
  78.  
  79. extern LispObject symbol_initargs;
  80. extern LispObject symbol_initform;
  81. extern LispObject symbol_metaclass;
  82.  
  83. /* Objects... */
  84.  
  85. extern LispObject generic_allocate_instance;
  86. extern LispObject generic_initialize_instance;
  87.  
  88.